package com.car.service.tgPeriod.impl;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import com.car.dal.dao.period.TgPeriodDao;
import com.car.dal.object.TgPeriod;
import com.car.dal.object.TgUser;
import com.car.service.tgPeriod.TgPeriodService;
import com.car.util.Page;
import com.car.util.PageUtil;
import com.car.web.controller.base.BaseVo;

public class TgPeriodServiceImp implements TgPeriodService {

	@Resource
    private TgPeriodDao periodDao;
	@Override
	public Map<String,Object> TgPeriodList(String userName, String power,int currPage,String center) {
		List<TgPeriod> list=new ArrayList<TgPeriod>();
		TgPeriod period = new TgPeriod();	
		Page page = null;
		Map<String,Object>map=new HashMap<String,Object>();
		if(center!=null&&!"".equals(center)&&!userName.equals("system")){
			period.setCentre(center);
		}
		if(power==null||"".equals(power)||!power.contains("37")){//被分配任务的老师可以查看所有可以查看所有的
	        if(userName!=null&&!"".equals(userName)&&!userName.equals("system")){//职能主管
					period.setCreate_name(userName);
		    }		
						
		}
	    Integer total = periodDao.getPreCountByType(period);
	    page = PageUtil.createPage(8, currPage, total);
		list = periodDao.getPeriodByType(period, page);
	
	    map.put("list", list);
	    map.put("page", page);
        return map;
	}
	
	@Override
	public Map<String, String> TgPeriodAddPro(String power, String id,TgPeriod period) {
		
		Map<String,String>map=new HashMap<String,String>();
		
			if(id!=null&&!id.equals("")){//id不为空为修改
				period.setId(Long.parseLong(id));
				periodDao.update(period);
				map.put("msg", "1");
			}else{
				//查询老师的评测时间，按照评测时间的降序（为了判断最大时间与当前时间）
				List<TgPeriod>list=periodDao.getPeriodByTime(period);
				if(!list.isEmpty()){
					int b=compeTime(list.get(0).getCreate_time());
					if(b==1){
						periodDao.insert(period);  
						map.put("msg", "1");
					}else{
					//	map.put("msg", "3");//表示本月已经添加成功，无需再添加
					}
				}else{
					periodDao.insert(period);
					map.put("msg", "1");
				}   
		}
		return map;
	}
	/**
	 * 评论最近的时间和当前时间评论，当确定最近时间是本月，则可断定该老师已经评论，不能再添加
	 * @param 
	 * @return
	 */
	public int compeTime(Date d){
		SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd");
		String time1=dateFormater.format(d);
		String time2=dateFormater.format(new Date());
		String[]s1=time1.split("-");
		String[]s2=time2.split("-");
		if(Integer.parseInt(s1[0])<Integer.parseInt(s2[0])){//1表示尚未评测本月
			return 1;
		}else{
			if(Integer.parseInt(s1[1])<Integer.parseInt(s2[1])){
				return 1;
			}else{
				return 0;
			}
		}
	}
	
}
